home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / WIN_PRO / VIEWS.ZIP;1 / CVDZIP.EXE / CVDEMO.TXT < prev    next >
Encoding:
Text File  |  1992-10-27  |  49.1 KB  |  816 lines

  1. Message file for cvdemo
  2. %About:About%
  3. How the About Box Works:
  4.  
  5. The Demo's About Box consists of the class, BounceAbout.  BounceAbout is a modal dialog box derived from the VDialog class.  The constructor for BounceAbout creates the "About" and "Ok" pushbuttons, using the VPushButton class.  These buttons are connected to the callback member functions BounceAbout::aboutBtn() and VDialog::ok, respectively.
  6.  
  7. In addition to the two buttons, the constructor creates an event timer using the VTimer class and number of Bouncer objects.  The Bouncer objects are used to hold the contents, position, and velocity of the "bouncing" text strings displayed in the About Box.  The timer pauses for a few seconds and then invokes the callback member function BounceAbout::bounceThem(), which causes the Bouncer objects to move up and down.
  8.  
  9. When the user closes the About Box, the destructor destroys the VTimer object and the Bouncer objects.  The two buttons are automatically destroyed.
  10.  
  11. The member function, BounceAbout::paint(), overrides the virtual function VWindow::paint() and is called whenever the About Box needs to be repainted.  This function draws the text and the Liant bitmap within the About Box.
  12.  
  13. %Class:About%
  14. How the Class View Works:
  15.  
  16. The Class View window consists of the class ClassView.  ClassView is an MDI (Multiple Document Interface) window derived from the VMdiView class.  The constructor for ClassView creates three child windows: a VListBox displaying a list of class categories; a VEditBox displaying information about the selected class; and a ClassTreeView displaying a graphical representation of the current class category.
  17.  
  18. ClassTreeView is derived from the VView class.  It contains a description of the current "class tree" and manages painting and event handling for the tree.
  19.  
  20. ClassView contains several member functions that serve as "callback" functions for the child windows: ClassView::listClick(), which is called whenever the mouse is clicked in the list box, and ClassView::classSelected(), which is called whenever a new class is selected in the ClassTreeView.  These functions cause a new class tree, and appropriate text, to be displayed.
  21.  
  22. All the text displayed in the ClassView comes from a separate message file, cvdemo.txt.  The text is retrieved using a global Messenger object.
  23. %Class:BounceAbout%
  24. The BounceAbout class is derived from the VDialog class.  It is used to implement the About Box for the demo program.
  25. %Class:Bouncer%
  26. The Bouncer class contains a VString, a location, and a velocity.  It is used by the BounceAbout class to keep track of its "bouncing strings."
  27. %Class:ClassInfo%
  28. The ClassInfo class is used by the ClassTreeView class to store information about the classes that make up the class tree.
  29. %Class:ClassTreeView%
  30. The ClassTreeView class is derived from the VView class.  It is used by the ClassView class to display a class hierarchy in tree form.  It uses the ClassInfo class to store information about the class tree.
  31. %Class:ClassView%
  32. The ClassView class is derived from the VMdiView class.  It displays information about the C++/Views class hierarchy using instances of the VListBox, VEditBox, and ClassTreeView classes.
  33. %Class:ColorControl%
  34. The ColorControl class is derived from the VControl class.  It is an example of a customized control and is used by the Example Dialog Box and the Sketch Pad.
  35. %Class:DemoAppView%
  36. The DemoAppView class is derived from the VMdiAppView class.  It is the main window for the C++/Views Demo.  It is responsible for creating the menu bar, tool bar, and all the other windows in the demo.  It also contains the callback member functions for the menu bar and tool bar.
  37. %Class:DialogView%
  38. The DialogView class is derived from the VDialog class.  It is an example of a dialog box created with C++/Views.  It's constructor creates all the controls needed by the dialog, including a customized ColorControl.
  39. %Class:FeatureView%
  40. The FeatureView class is derived from the VMdiView class.  It displays a list of C++/Views features in a VListBox object and text for the feature in a VEditBox object.
  41. %Class:HowView%
  42. The HowView class is derived from the VDialog class.  It is a dialog box that displays either a description or source code for a particular part of the demo program using a VEditBox object.
  43. %Class:IntroView%
  44. The IntroView class is derived from the VMdiView class.  It displays a "C++/Views" banner and some introductory text in a VEditBox object.  The banner is displayed by overriding the virtual function paint() and drawing the string "C++/Views" using the VPort and VFont classes.
  45. %Class:Messenger%
  46. The Messenger class retrieves messages, such as the one you are reading, from a text file.  It is implemented using the VDictionary and VStream classes.
  47. %Class:PlatformView%
  48. The PlatformView class is derived from the VMdiView class.  It displays a number of platforms supported by C++/Views using VRadioButton objects and text for the platform in a VEditBox object.
  49. %Class:SketchView%
  50. The SketchView class is derived from the VMdiView class and is an example of a simple C++/Views application.  It manages mouse events and painting for a simple sketch pad.  It uses the ColorControl class to allow the user to select new colors.
  51. %Class:ToolBar%
  52. The ToolBar class is derived from the VView class and is used to create the tool bar for the demo.  It contains a number of VPicButton objects.
  53. %Class:VAbout%
  54. The VAbout class is a modal dialog designed for displaying a standard application About Box.  It is derived from the VDialog class.
  55. %Class:VAccelerator%
  56. A VAccelerator object is used to maintain an association between an accelerator key (a virtual key code) and a member function of some object.  Whenever the accelerator key is pressed the member function is called.
  57. %Class:VAddRemoveList%
  58. VAddRemoveList is a dialog that allows the user to add or remove elements to or from a subset of a set.  The VAddRemoveList dialog presents two list boxes: one on the left containing the elements of the set and one on the right containing the elements of the subset.  When the user selects items from one of these list boxes, a directional pushbutton is enabled so that the selected items can be copied to the other list.  When the OK button is selected, the dialog returns the subset.  This class uses the VOrdCollect class to represent the set and subset.
  59. %Class:VAppView%
  60. The VAppView class represents the top level window for an application. Typically you derive a new class of VAppView and use this as your application's main window.
  61. %Class:VArchiver%
  62. The VArchiver class implements object persistence.  Using the VArchiver class you can save and retrieve objects or collections of objects to and from a file. Archival can be ASCII or binary.
  63. %Class:VAssoc%
  64. The VAssoc class provides a mechanism for associating two objects, one known as the key and the other known as the value.  VAssoc is used in conjunction with the VDictionary class for looking up values by keys.
  65. %Class:VAtom%
  66. The VAtom class is specifically designed to implement the Atom name space facility of MS Windows and OS/2 PM.  It is used by the VDde classes.
  67. %Class:VBitBltr%
  68. The VBitBltr class supports the transfer of pixels (bits) from a source display object to a destination display object.  The source of the bits for transfer can be instances of the VBitMap class or instances of classes derived from the VWindow class. The destination display objects can be instances of the VBitMap class, the VPrinter class, or instances of classes derived from the VWindow class.
  69. %Class:VBitMap%
  70. The VBitMap class is designed to store pictorial images in a digital form.  Each pixel of the image corresponds to one or more bits in the bitmap.
  71. %Class:VBool%
  72. The VBool class represents a boolean value: TRUE or FALSE.
  73. %Class:VBrush%
  74. The VBrush class defines the foreground color, background color, and fill pattern used when filling areas with the VPort class.
  75. %Class:VButton%
  76. The VButton class is derived from the VControl class.  It provides an active area of the screen that is used to elicit a response when it is clicked on by the user. VButton is an abstract class: the various types of buttons are derived from VButton.  You can create customized, user-drawn buttons by deriving a new class from VButton.
  77. %Class:VButtonGroup%
  78. A VButtonGroup is an abstract class representing an ordered collection of buttons.
  79. %Class:VCheckBox%
  80. The VCheckBox class is derived from the VButton class.  It displays a square box to the left of a text label.  The square box can be empty (unchecked) or marked with an x (checked).  If you wish, the VCheckBox object will automatically toggle between the checked and unchecked state.
  81. %Class:VClass%
  82. The VClass class is used to implement class identity.  Every class in the C++/Views hierarchy has a corresponding VClass object.  You can use these "meta-classes" to perform run-time type-checking, construction, identification, and persistence.
  83. %Class:VClassTable%
  84. VClassTable is a global class that manages the meta-class information.  You do not use this class directly, it is used by the VClass class.
  85. %Class:VClipBoard%
  86. The VClipBoard class provides access to the "system" clipboard. Using an instance of the VClipBoard object, you can put and get data from the clipboard in text or bitmap format.  In addition, you can use any archivable object with the clipboard (see VArchiver).
  87. %Class:VCollection%
  88. A VCollection is an abstract class containing a collection of objects.  Several classes are derived from it.
  89. %Class:VComboBox%
  90. The VComboBox is a derived from the VListBox class.  It operates in the same manner as a VListBox except that it also provides a text control similar to that of the VEditLine or VTextbox classes.
  91. %Class:VContainer%
  92. A VContainer is an array of various elements. Its contents are automatically allocated and will expand or shrink as needed.
  93. %Class:VControl%
  94. The VControl class is an abstract class that provides various control mechanisms for interactive applications (such as buttons and text boxes).  Each VControl object has a client object and a pointer to a "callback" member function of the client.  This callback function is used to notify the client when some specific event occurs.
  95. %Class:VControlView%
  96. The VControlView class is designed to provide a means for treating classes derived from the VControl class (that is, VButton, VListBox, and so on) as child windows that can take on the attributes of having a title, being sizable, being movable, or having a close box (system menu).
  97. %Class:VDde%
  98. The VDde class is an abstract class which implements the Dynamic Data Exchange (DDE) protocol provided in MS Windows and OS/2 common to both the server and client components.  The classes VDdeClient and VDdeServer are derived from it.
  99. %Class:VDdeClient%
  100. The VDdeClient class implements a MS Windows or OS/2 DDE client.  It provides methods to initiate a session with a DDE server, send data, establish warm and hot item links, and execute commands on the server. It uses a callback mechanism to notify its C++ client object when a hot-linked data item has been sent by the server or when a warm-linked data item has changed.
  101. %Class:VDdeServer%
  102. The VDdeServer class implements an MS Windows or OS/2 DDE server.  It operates in two modes: as an object that receives service requests from DDE clients (top-level) and as a server for a single DDE client (non-top-level). It provides methods to send item data to the client and to notify the client DDE that an item has changed.
  103. %Class:VDialog%
  104. The VDialog class is derived from the VPopupWindow class.  It is designed to embody the user interface elements common to all specific forms of user dialog boxes.  VDialog objects can be displayed as either modal or mode-less dialogs.
  105. %Class:VDictionary%
  106. A VDictionary is a VSet of VAssoc objects.  A VDictionary is used to maintain a set of key/value object associations.
  107. %Class:VDisplay%
  108. The VDisplay class is an abstract class defining a array of pixels which may be written to by the VBitBltr or VPort classes.  VPrinter, VBitMap, and VWindow are derived from VDisplay.
  109. %Class:VEditBox%
  110. The VEditBox class presents a control object which displays and edits text.
  111. %Class:VEditLine%
  112. The VEditLine class is derived from the VEditBox class.  It contains only one line of text and hence, it does not support scroll bars.  The contents of an VEditLine object can be aligned to the left, right or center.  VEditLine objects support clipboard cutting and pasting, as well as a single level undo.
  113. %Class:VEllipse%
  114. The VEllipse class defines an elliptical region which is specified through the coordinates of a bounding rectangle.
  115. %Class:VEvent%
  116. The VEvent class is designed to encapsulate system dependent event dispatch information.
  117. %Class:VExclusiveGroup%
  118. An VExclusiveGroup is a VGroup of VButtons distributed in a presentation window.  If the button type is derived from VCheckBox, then only one button may be checked at a time.
  119. %Class:VFile%
  120. The VFile class provides buffered access to system files.  A VFile object can be associated with any file, closed, or reopened on a different file.  VFile objects can be constructed, or opened, with a file name which can be provided as a C string, a VString object, or as a VPathString object.
  121. %Class:VFileSelect%
  122. The VFileSelect class is a modal dialog used to obtain file pathname specifications from the user. VFileSelect supports changing drives and directories as well as the filtering of file name listings.
  123. %Class:VFont%
  124. The VFont class defines properties of the text drawn with the VPort class.  The fundamental properties of fonts are those of character style (typeface) and character type size (expressed in units called "points").  Additional properties, such as bold, italics, underlining, and strikeout, can be specified.
  125. %Class:VFontSelect%
  126. The VFontSelect class is a modal dialog which allows the user to select from a list of available fonts.
  127. %Class:VFrame%
  128. The VFrame class represents a rectangular area.  It is used by the VWindow class to maintain the size and position of VWindow objects.  VFrame objects are constructed using VRatio objects which can describe fixed or ratioed (percents) coordinates.
  129. %Class:VGlobal%
  130. VGlobal is an abstract class designed to provide a mechanism for supporting the creation and manipulation of global (that is, application-wide scope) objects within an MS Windows or OS/2 DLL.
  131. %Class:VGroup%
  132. A VGroup is a class representing an ordered collection of VControl objects.
  133. %Class:VIcon%
  134. An VIcon represents a set of small bitmaps that are used primarily as a pictorial representation of an application.  VIcon objects are also used by the VIconButton class to form graphical push buttons for use in an application's dialogs and tool bars.
  135. %Class:VIconButton%
  136. The VIconButton class is designed to support graphical push buttons in an application.  VIconButton objects have the same 3-D background as VPushButton objects, but they differ in that they display an icon instead of a text label on their surface.
  137. %Class:VInclusiveGroup%
  138. An VInclusiveGroup is a VGroup of VButtons arranged in a presentation window.  If the button is a subclass of VCheckBox, then more than one button may be checked at a time.
  139. %Class:VInput%
  140. The VInput class is a modal dialog object designed for user text entry.  An VInput object takes a C string for use as a prompt message to the user and, optionally, a VString object to be used as the default text entry.
  141. %Class:VIntAssoc%
  142. The VIntAssoc class is an association of two long integer values, one known as the key and the other known as the value.
  143. %Class:VIntegerSet%
  144. An VIntegerSet is a hash table of long integer values.
  145. %Class:VIterator%
  146. A VIterator facilitates iteration through the elements of a VCollection.
  147. %Class:VListBox%
  148. The VListbox maintains and displays a list of text strings.  The list can be scrolled up and down by the user by way of a vertical scroll bar.  VListbox objects have two callbacks: one for when the user clicks on an item in the list; and another for when the user double clicks on an item in the list.  Both callbacks pass the index of the selected item to the client object.
  149. %Class:VListSelect%
  150. The VListSelect class is a modal dialog used either to view a list of strings, or to obtain a selection from a list of strings.
  151. %Class:VLocation%
  152. A VLocation is an (x,y) pair of short integers used to represent a point or a dimension in the presentation space of VDisplay objects.
  153. %Class:VMdiAppView%
  154. VMdiAppView is a MS Windows specific class that implements the MDI Frame window in an MDI application.  A VMdiAppView is an VAppView with added functionality for constructing and interfacing with the VMdiClient object and its contained VMdiView child windows.
  155. %Class:VMdiClient%
  156. VMdiClient is a MS Windows specific class implementing the MDI Client window which controls and manages all the MDI child windows in an application.
  157. %Class:VMdiView%
  158. VMdiView is an MS Windows specific class that implements an MDI child window. Classes derived from it must always be constructed as children of an VMdiAppView derived class.
  159. %Class:VMemory%
  160. The VMemory class is used to manage portable memory allocation for C++/Views.  It is a fully static class--only one instance of it is constructed per application.
  161. %Class:VMenu%
  162. The VMenu class implements the menu bar for an application's top level window.
  163. %Class:VMenuItem%
  164. The VMenuItem class implements the automatic menu item selection process for VPopupMenu objects.  A VMenuItem object defines the linkage of a label on a menu to a specific method of a client object.  When a VMenuItem is selected with the mouse (or keyboard) a callback message is automatically sent to the client object.  VMenuItem objects can be checked/unchecked or disabled/enabled, and they can have their client, callback method selector, and label attributes manipulated.
  165. %Class:VMouseCursor%
  166. The VMouseCursor represents the visual appearance of the GUI system's pointing device on the display screen.  VMouseCursor objects can be constructed from a set of pre-defined shapes or user-defined VMouseCursor objects can be constructed from a system resource.
  167. %Class:VMultiListBox%
  168. The VMultiListbox maintains and displays a list of text strings.  The difference between a VMultListBox object and a VListBox object is that a VMultListBox object allows the user to select more than one string.
  169. %Class:VMultiSelect%
  170. The VMultiSelect class is a modal dialog used to obtain one or more selections from a list of strings or to simply view a list of strings.
  171. %Class:VNotifier%
  172. The VNotifier class is the centralized controller class of the C++/Views MVC paradigm.  The VNotifier handles events such as mouse events, timer events, keyboard focus changes, keyboard inputs, window exposures, window size changes, and window movements.
  173. %Class:VObjArray%
  174. A VObjArray is a VContainer of objects.
  175. %Class:VObject%
  176. The VObject class is the principle root of the C++/Views class hierarchy.  The VObject is an abstract base class supporting the notions of class object copying, performing methods, archival, comparison, and equivalence.
  177. %Class:VOrdCollect%
  178. A VOrdCollect is a VCollection whose objects are ordered from 0 to count() - 1.  The contents of a VOrdCollect object are expanded to accommodate new objects.
  179. %Class:VPathString%
  180. VPathString represents a platform independent file and/or directory name.  It provides methods for checking for the existence of and access permissions of files, obtaining or setting the current working directory, and manipulating component parts of a file and/or directory name.
  181. %Class:VPen%
  182. The VPen class defines properties of lines drawn in the VPort class.  Three properties are defined: width, color, and pattern.
  183. %Class:VPicButton%
  184. The VPicButton class is designed to support graphical, picture based buttons in an application using VBitMap objects.
  185. %Class:VPointArray%
  186. A VPointArray is a VContainer of points (x-y pairs of short integers).
  187. %Class:VPolygon%
  188. The VPolygon class defines a polygonal region by way of a set of points.
  189. %Class:VPopupMenu%
  190. A VPopupMenu object contains an ordered collection of VMenuItem or VPopupMenu objects that implement the automatic menu selection process.  The VPopupMenu class implements methods for altering names and states of the menu items.  For example, menu items can be enabled/disabled and checked/unchecked.
  191. %Class:VPopupWindow%
  192. The VPopupWindow class is derived from the VView class.  When displayed, it appears in front of and on top of all other windows in an application.  VPopupWindow objects must have a parent window, but they are not clipped by their parent window.
  193. %Class:VPort%
  194. The VPort class is the main graphic output class.  VPort objects provide functions for drawing and painting simple shapes, drawing lines, drawing text, and performing viewing transformations.  The VPort class uses a VPen object to specify the properties of stroked objects, such as lines; a VBrush object to specify the properties of filled objects, such as rectangles and circles; and a VFont object specify the properties of text objects.
  195. VPort objects may be opened on VWindow objects, VBitMap objects, or VPrinter objects.
  196. %Class:VPrintDialog%
  197. The VPrintDialog class is a modal dialog which allows the user to choose from a list of available printers.
  198. %Class:VPrinter%
  199. The VPrinter class supports text and graphics output to a printer device that is connected to the computer running the application.  VPort objects may be used to support full graphic output to a printing device.
  200. %Class:VPushButton%
  201. A VPushButton is a button that is displayed with a border surrounding its text contents.  VPushButton objects can be highlighted or unhighlighted.  VPushButton objects can also have the automatic attribute which provides for an automatic toggle between the hilighted and unhighlighted states.
  202. %Class:VRadioButton%
  203. A VRadioButton is a button displayed with a small circle to the left of its text content (label).  The circle can be empty to imply unchecked or filled with black to imply checked.  If a VRadioButton object has the automatic attribute, then it will automatically toggle between the checked and unchecked state.
  204. %Class:VRatio%
  205. VRatio is a class used with the VFrame class to implement framing ratios, or actual coordinates, between a child VWindow's coordinates and its parent.  If constructed with a float, then the VRatio object represents a ratio of the parent VWindow's client region.
  206. %Class:VRectangle%
  207. The VRectangle class represents a rectangular area.  A VRectangle object can be described by an origin (the top left corner) and a corner (the bottom right corner) point; or by an origin and an extent point (the width and height of the rectangle).
  208. %Class:VRegion%
  209. A VRegion is an abstract super class which represents a closed area.  Classes derived from VRegion implement different types of closed regions.
  210. %Class:VReport%
  211. A VReport is a modal dialog that presents a message to the user.
  212. %Class:VRoundRect%
  213. The VRoundRect class defines a region formed by the intersection of a VRectangle and an VEllipse.  The amount of rounding is given by a roundness parameter, which gives the dimensions of the bounding rectangle of the ellipse relative to the dimensions of the rectangle.
  214. %Class:VScrollBar%
  215. The VScrollBar class provides a mechanism for the user to visually select a value from a range of possible values using a scroll bar.
  216. %Class:VSerial%
  217. The VSerial class allows buffered input and output with the computer's asynchronous ports.  The VSerial class implements error handling, flow control, hardware handshaking, and serial port configuration.
  218. %Class:VSet%
  219. A VSet is a VCollection of non-matching objects.
  220. %Class:VShade%
  221. The VShade class is used to perform 3-D shading within VDisplay objects.  This class is often used to create the chiseled steel look on VWindow objects.  The VShade supports both lines and rectangles.
  222. %Class:VStack%
  223. A VStack is a first-in-last-out VOrdCollect.
  224. %Class:VStream%
  225. A VStream is an array of bytes.
  226. %Class:VString%
  227. A VString is a NULL terminated string of ASCII characters.
  228. %Class:VSysMenu%
  229. The VSysMenu class represents the system menu associated with the setting of the close box on a VView object.
  230. %Class:VTagStream%
  231. The VTagStream class allows flexible placement and replacement of tags within VStream objects.  A tag is one or more characters delimited by a starting and ending character.
  232. %Class:VTextBox%
  233. The VTextBox class displays a character string aligned either left, right or centered within a window.  VTextBox objects do not respond to mouse or keyboard events.
  234. %Class:VTextEditor%
  235. The VTextEditor supports the editing of text contained by VString objects.  VTextEditor objects automatically create both vertical and horizontal scroll bars, and they can produce a ready-made VPopupMenu menu object to support searching functions.
  236. %Class:VTimer%
  237. The VTimer class is used to provide timed events to client objects.  Timing events can be set up to occur periodically (that is, every so many milliseconds) or for a specific time interval (one-shots).
  238. %Class:VToFromStream%
  239. The VToFromStream class is used to read data from one VStream to a another VStream.
  240. %Class:VTokens%
  241. The VTokens class defines the tokens to be scanned by VTokenStream.  A token is zero or more contiguous characters in a VStream.  A token has a type and a value. A token type may either be user-specified or a built-in integer value.  A token value is a string of characters which comprise the token.
  242. %Class:VTokenStream%
  243. The VTokenStream class defines a lexical scan from one VStream to another VStream.  A VTokens object defines the tokens used by the VTokenStream.
  244. %Class:VTriState%
  245. A VTriState is a button that is displayed with a square box to the left of its text content (label).  The square box can be empty (unchecked), marked with an x (checked), or be "grayed" and unselectable (VTriState).  If a VTriState object has the automatic attribute, then it will automatically toggle between the checked and unchecked state.
  246. %Class:VView%
  247. The VView class is a subclass of VWindow that provides the basis for building application specific views and sub-views within the MVC program paradigm.
  248. %Class:VWindow%
  249. The VWindow class is an abstract super class that defines attributes common to all windows: sizing, moving, event protocols, creating, destroying, managing of children, and so on.  A VWindow object is usually bound to a presentation space which is the visual representation of the VWindow object in the underlying GUI system.
  250. %Class:VYesNo%
  251. The VYesNo class is a modal dialog that presents a question to the user and solicits a YES, NO, or possibly a CANCEL response.
  252. %ClassIntro:Data Classes%
  253. The C++/Views data classes provide a rich assortment of objects for containing and managing your application's data.
  254. %ClassIntro:Demo Classes%
  255. These classes were created especially for the C++/Views Demo Program.  (The classes whose names start with a 'V' are from the C++/Views library.)
  256. %ClassIntro:Dialog Classes%
  257. The C++/Views dialog classes provide means for creating and displaying dialog boxes.  In addition, a number of pre-built dialogs are available, such as file selection, font selection, printer selection, about, and yes/no dialogs.
  258. %ClassIntro:Event Classes%
  259. The C++/Views event classes manage and simplify the flow of events in a GUI application.  These classes let you process events, create menus, assign keyboard accelerators, and create timers.
  260. %ClassIntro:General%
  261. C++/Views contains a complete set of classes representing various GUI objects.  In addition C++/Views offers a set of data classes.
  262. Choose a topic from the list on the left to browse the corresponding class hierarchy.
  263. %ClassIntro:Graphics Classes%
  264. The C++/Views graphics classes give you easy-to-add graphics to your applications including fonts, brushes, pens, regions, bitmaps, icons, 3-D shading, and printer support.
  265. %ClassIntro:Interface Classes%
  266. The C++/Views interface classes include all the standard GUI objects: buttons, edit boxes, text editors, scroll bars, and more.
  267. %ClassIntro:String and Stream Classes%
  268. C++/Views includes a set of string and stream classes to simplify application development.
  269. %ClassIntro:Window Classes%
  270. The C++/Views window classes let you easily create and control windows.  Through inheritance, it is easy to create your own new window types.  C++/Views also supports Multiple Document Interface (MDI) and Dynamic Data Exchange (DDE).
  271. %ClassList:Data Classes%
  272. (VObject           0                     50  105)
  273. (VAssoc         VObject            150   25)
  274. (VIntAssoc         VAssoc                250   25)
  275. (VCollection     VObject            150   62)
  276. (VOrdCollect     VCollection        250   62)
  277. (VStack          VOrdCollect        350   50)
  278. (VSet             VOrdCollect        350   75)
  279. (VDictionary     VSet                450   75)
  280. (VContainer     VObject            150  125)
  281. (VIntegerSet    VContainer            250  100)
  282. (VObjArray        VContainer            250  125)
  283. (VPointArray    VContainer            250  150)
  284. (VIterator         VObject            150  175)
  285. %ClassList:Demo Classes%
  286. (VMdiAppView    0                    50     15)
  287. (DemoAppView    VMdiAppView           150     15)
  288. (VControl        0                     50     38)
  289. (ColorControl    VControl           150     38)
  290. (VView            0                    50     92)
  291. (ToolBar        VView               150     69)
  292. (VMdiView        VView               150     92)
  293. (ClassTreeView    VView               150    115)
  294. (ClassView        VMdiView           250     46)
  295. (FeatureView    VMdiView           250     69)
  296. (IntroView        VMdiView           250     92)
  297. (PlatformView    VMdiView           250    115)
  298. (SketchView        VMdiView           250    138)
  299. (VDialog        0                    50    171)
  300. (DialogView        VDialog               150    148)
  301. (HowView        VDialog               150    171)
  302. (BounceAbout    VDialog               150    194)
  303. (Messenger        0                    50    207)
  304. (Bouncer        0                    50    230)
  305. (ClassInfo        0                    50    253)
  306. %ClassList:Dialog Classes%
  307. (VView            VWindow                50  115)
  308. (VPopupWindow    VView               150  115)
  309. (VDialog        VPopupWindow       250  115)
  310. (VAbout            VDialog               350     23)
  311. (VFileSelect     VDialog               350     46)
  312. (VFontSelect     VDialog               350     69)
  313. (VInput            VDialog               350     92)
  314. (VListSelect     VDialog               350    115)
  315. (VMultiSelect    VDialog               350    138)
  316. (VPrintDialog    VDialog               350    161)
  317. (VReport          VDialog               350    184)
  318. (VYesNo            VDialog               350    207)
  319. %ClassList:Event Classes%
  320. (VObject           0                     50   75)
  321. (VNotifier         VObject                150   25)
  322. (VMenu             VObject                150   50)
  323. (VPopupMenu          VMenu                250   50)
  324. (VSysMenu          VPopupMenu           350   50)
  325. (VMenuItem         VObject                150   75)
  326. (VMouseCursor     VObject                150  100)
  327. (VTimer             VObject                150  125)
  328. %ClassList:Graphics Classes%
  329. (VObject           0                     50  125)
  330. (VBitBltr         VObject            150   23)
  331. (VBrush             VObject            150   46)
  332. (VDisplay         VObject            150   69)
  333. (VBitMap        VDisplay            250   46)
  334. (VPrinter        VDisplay            250   69)
  335. (VWindow        VDisplay            250   92)
  336. (VFont             VObject            150   92)
  337. (VFrame             VObject            150  115)
  338. (VIcon            VObject            150  207)
  339. (VPen             VObject            150  138)
  340. (VPort             VObject            150  161)
  341. (VRegion         VObject            150  184)
  342. (VPolygon         VRegion            250  173)
  343. (VRectangle         VRegion            250  196)
  344. (VEllipse        VRectangle            350  184)
  345. (VRoundRect        VRectangle            350  207)
  346. (VShade            VObject            150  230)
  347. %ClassList:Interface Classes%
  348. (VControl         0                     50  115)
  349. (VButton        VControl            150   57)
  350. (VCheckBox        VButton            250   34)
  351. (VRadioButton    VCheckBox            350   23)
  352. (VTriState        VCheckBox            350   46)
  353. (VPushButton    VButton            250   80)
  354. (VIconButton    VPushButton           350   69)
  355. (VPicButton        VPushButton           350   92)
  356. (VGroup            VControl            150  115)
  357. (VButtonGroup    VGroup                250  115)
  358. (VInclusiveGroup VButtonGroup       350  115)
  359. (VExclusiveGroup VInclusiveGroup   450  115)
  360. (VListBox        VControl            150  149)
  361. (VComboBox        VListBox            250  138)
  362. (VMultiListBox    VListBox            250  161)
  363. (VScrollBar        VControl            150  184)
  364. (VTextBox        VControl            150  207)
  365. (VEditBox        VTextBox            250  207)
  366. (VEditLine        VEditBox            350  196)
  367. (VTextEditor    VEditBox            350  219)
  368. %ClassList:List%
  369. (Data Classes)
  370. (Demo Classes)
  371. (Dialog Classes)
  372. (Event Classes)
  373. (Graphics Classes)
  374. (Interface Classes)
  375. (String and Stream Classes)
  376. (Window Classes)
  377. %ClassList:String and Stream Classes%
  378. (VString         0                     50   50)
  379. (VStream         VString            150   50)
  380. (VFile             VStream            250   25)
  381. (VArchiver         VFile                350   25)
  382. (VSerial         VStream                250   50)
  383. (VToFromStream     VStream                250   75)
  384. (VTagStream        VToFromStream       350   75)
  385. (VTokenStream    VTagStream           450   75)
  386. (VPathString    VString               150    100)
  387. (VTokens        0                    50    125)
  388. %ClassList:Window Classes%
  389. (VDisplay         0                    50   75)
  390. (VWindow        VDisplay           150   75)
  391. (VDde            VWindow            250   36)
  392. (VDdeServer        VDde               350   25)
  393. (VDdeClient        VDde               350   50)
  394. (VMdiClient        VWindow               250   75)
  395. (VView            VWindow               250  111)
  396. (VAppView        VView               350  100)
  397. (VMdiAppView    VAppView           450  100)
  398. (VPopupWindow    VView               350  125)
  399. %Dialog:About%
  400. How the Sample Dialog Box Works:
  401.  
  402. The Sample Dialog Box is an example of a dialog box created using C++/Views and shows how to use both standard, GUI controls (e.g., edit lines, combo boxes), and custom controls (e.g., color control).
  403.  
  404. The Sample Dialog Box consists of the class, DialogView.  DialogView is a modal dialog box derived from the VDialog class.  The constructor for DialogView creates a number of control objects.  Specifically, it creates a VEditLine, a VComboBox, a VExclusiveGroup, a VListBox, a ColorControl, and several VPushButton objects.  The constructor also assigns default values to the various controls.
  405.  
  406. The VPushButton and VListBox objects are connected to callback member functions within DialogView.
  407. %Feature:About%
  408. How the Feature List View Works:
  409.  
  410. The Feature List window consists of the class FeatureView.  FeatureView is an MDI (Multiple Document Interface) window derived from the VMdiView class.  The constructor for FeatureView creates two child windows: a VListBox displaying a list of features and a VEditBox displaying information about the selected feature.  The constructor also reads the list of features from the demo message file.
  411.  
  412. FeatureView contains two member functions that serve as "callback" functions for the VListBox: FeatureView::listClick() and FeatureView:doubleClick(), which are called whenever the mouse is clicked or double-clicked in the list box.  FeatureView::listClick() displays text about the selected feature in the VEditBox.
  413.  
  414. All the text displayed in the FeatureView comes from a separate message file, cvdemo.txt.  The text is retrieved using a global Messenger object.
  415. %Features:Intro%
  416. C++/Views is the leading C++ class library for rapidly building portable GUI applications.  Liant C++/Views contains more than 100 proven classes that help shield developers from the complexities of today's GUI programming, reducing GUI development time up to 75 percent.  C++/Views is compiler independent and includes C++/Browse, a powerful source code browser and editor for building C++ applications and creating new C++ classes.
  417. %Features:List%
  418. (ï 100+ Proven Object Classes)
  419. (ï Cross-Platform Portability)
  420. (ï Native Interface Components)
  421. (ï Fast and Simple GUI Development)
  422. (ï C++/Browse)
  423. (ï Compiler Independence)
  424. (ï Inheritance)
  425. (ï Free Source Code)
  426. (ï No Royalties)
  427. (ï C++/Views Customer Support)
  428.  
  429. %Features:ï 100+ Proven Object Classes%
  430. Liant C++/Views provides more than 100 ready-to-use classes including, standard classes for interface components such as windows, dialog boxes, menus, buttons, and special classes to handle serial ports, timers, printers, dynamic data exchange, and dynamic link libraries.  Views also includes data classes to handle collections, dictionaries, sets, strings, and files.  All our object classes can be modified to meet your individual needs.
  431. %Features:ï C++/Browse%
  432. C++/Browse is C++/Views' powerful source code browser and editor for building C++ applications and creating new C++ classes.  C++/Browse automatically keeps header files up to date and creates make and linker response files.  C++/Browse reads and writes standard C++ code so it can be used with non-GUI classes or used in conjunction with your favorite text editor.  Additionally, C++/Browse is a great learning tool.  C++/Browse's visual approach helps novice C++ developers up the C++ learning curve.  For those developers who prefer their traditional editor, use of C++/Browse is completely optional.
  433. %Features:ï C++/Views Customer Support%
  434. All registered users receive C++/Views telephone support privileges.  Users can call Liant's User Interface Tools support from 9 AM to 5 PM EST (508-875-2294) or contact us by electronic mail through the Internet (support@lpi.liant.com) for prompt service from one of our support representatives.  Moreover, customers can access Liant's User Interface Bulletin Board Service (508-626-0681) for up to minute information from our support network.  Watch for more extended C++/Views support services in the future.
  435. %Features:ï Compiler Independence%
  436. C++/Views doesn't limit you to a particular compiler.  It takes advantage of the tools you already have on your desktop.  C++/Views supports Borland C++, Microsoft C++, Zortech C++, Liant's C++, or any cfront 2.1 compatible C++ compiler.
  437. %Features:ï Cross-Platform Portability%
  438. C++/Views is the answer to cross-platform application development.  C++/Views applications can be ported across environments such as Microsoft Windows, OS/2 Presentation Manager, UNIX/Motif and others.  GUI applications created on one platform can be easily moved to another, just by recompiling.  Because of this powerful portability feature, C++/Views can satisfy your application development needs today and prepare you for technology investments tomorrow.
  439. %Features:ï Fast and Simple GUI Development%
  440. Any developer who has tackled the task of GUI programming knows how cumbersome it can be.  C++/Views shields you from the complexities of the underlying GUI's application programming interface to help simplify and speed up GUI programming.
  441. %Features:ï Free Source Code%
  442. All registered users receive the C++/Views source code free of charge.  The source code comes complete with numerous examples of C++ techniques to help you with your C++ development.
  443. %Features:ï Inheritance%
  444. C++/Views provides flexibility through the unique object-oriented feature of Inheritance.  With Inheritance, you can easily create new or customized objects to fit your specific application requirements.
  445. %Features:ï Native Interface Components%
  446. Our interface components are native, not simulated.  This allows applications built with C++/Views to take on the look and feel of the GUI on which it is running.  With C++/Views, your applications will have the GUI presentation and functionality you have come to expect.
  447. %Features:ï No Royalties%
  448. There are no royalties or run-time license fees associated with C++/Views.
  449. %How:About%
  450. How the "How it works" Dialog Works:
  451.  
  452. The "How-it-works" dialog consists of the class HowView.  HowView is derived from the VDialog class.  The constructor for HowView creates a number of VPushButton objects and a VEditBox for displaying information.
  453.  
  454. HowView contains member functions that serve as "callback" functions for the various VPushButton objects.  These functions switch between text and source code or quit the dialog.
  455.  
  456. All the text displayed in How-it-works window comes from a C++ source file or a separate message file, cvdemo.txt.  The text is retrieved using a global Messenger object.
  457. %Intro:About%
  458. How the Introductory View Works:
  459.  
  460. The Introductory View displays a "C++/Views" banner and some introductory text.
  461.  
  462. The Introductory View window consists of the class IntroView.  IntroView is an MDI (Multiple Document Interface) window derived from the VMdiView class.  The constructor for IntroView creates a VEditBox child window which is used to display the introductory text.
  463.  
  464. IntroView displays the banner by overriding the virtual function paint() and drawing the string "C++/Views" using the VPort and VFont classes.
  465.  
  466. The introductory text displayed in the IntroView comes from a separate message file, cvdemo.txt.  The text is retrieved using a global Messenger object.
  467. %Order:Intro%
  468. To find the name of the nearest C++/Views distributor, select a region from the list above.
  469. %Order:List%
  470. (North America)
  471. (Norway)
  472. (Sweden)
  473. (United Kingdom)
  474. (Italy)
  475. (France)
  476. (Benelux)
  477. (Germany, Austria, Switzerland)
  478. (Denmark)
  479. (Finland)
  480. (Rest of Europe)
  481. (Hong Kong)
  482. (Japan)
  483. (Korea)
  484. (Taiwan)
  485. (China)
  486. (Argentina)
  487. (Brazil)
  488. (Chile)
  489. (Mexico)
  490. (Venezuela)
  491. (Uruguay)
  492. (Australia)
  493. (New Zealand)
  494. (Indonesia)
  495. (Other International)
  496. %Order:North America%
  497. Liant Software Corporation
  498. 959 Concord Street
  499. Framingham, MA  01701
  500. Tele:    (800) 237-1873
  501. Fax:    (508) 820-0035
  502.  
  503. or one of our U.S. authorized resellers or distributors
  504. %Order:Norway%
  505. PC Computing
  506. Waldemar Thranesgt. 98b
  507. 0175 Oslo
  508. Norway
  509. Tele:    +47 2 384 888
  510. Fax:    +47 2 384 856
  511.  
  512. Multix
  513. Gjerdrums vei 12
  514. N-0486 Oslo 4
  515. Norway
  516. Tele:    +47 2 950 800
  517. Fax:    +47 2 950 790
  518.  
  519. Ravenholm Computing
  520. Waldenmarthranesgt. 77
  521. 0175 Oslo
  522. Norway
  523. Tele:    +47 2 11 09 50
  524. Fax:    +47 2 11 12 20
  525.  
  526. %Order:Sweden%
  527. Esselte System Int
  528. P.O. Box 1374
  529. 17127 Solna
  530. Sweden
  531. Tele:    +46 8 734 3512
  532. Fax:    +46 8 730 0806
  533.  
  534. LinSoft
  535. Box 634
  536. 58107 Linkoeping
  537. Sweden
  538. Tele:    +46 1311 1588
  539. Fax:    +46 1315 2429
  540.  
  541. %Order:United Kingdom%
  542. Instrumatic UK Ltd
  543. First Avenue
  544. Globe Park
  545. Marlow
  546. BUCKS SL7 1YA
  547. United Kingdom
  548. Tele:    +44 0628 476 741
  549. Fax:    +44 0628 474 440
  550.  
  551. Systemstar
  552. The Red House, Bluecoast
  553. SG14 1AX Hertford
  554. United Kingdom
  555. Tele:    +44 992 500919
  556. Fax:    +44 992 554261
  557. %Order:Italy%
  558. Instrumatic srl
  559. Via Piave 22/A
  560. 20016 Pero (MI)
  561. Italy
  562. Tele:    +39 2 381 030 80
  563. Fax:    +39 2 381 013 48
  564.  
  565. Soft Team
  566. Via Croce Rossa, 5
  567. 35129 Padova
  568. Italy
  569. Tele:    +39 49 82 91285
  570. Fax:    +39 49 82 91296
  571. %Order:France%
  572. Instrumatic France
  573. 7 Avenue des Andes
  574. 91952 Les Ulis Cedex
  575. France
  576. Tele:    +33 (1) 690 702 94
  577. Fax:    +33 (1) 690 704 92
  578.  
  579. Smartline
  580. 30, rue Saint Andre des Arts
  581. 75006 Paris
  582. France
  583. +33 1 4634 6419
  584. +33 1 4046 8589
  585.  
  586. ISE
  587. Immeuble Energy 1
  588. 32 Avenue de l'Europe
  589. 78140 Velizy
  590. France
  591. Tele:    +33 1 348 898 89
  592. Fax:    +33 1 348 898 00
  593.  
  594. Softway France
  595. Immeuble Energy 1
  596. 32 Avenue de l'Europe B.P. 126
  597. 78148 Velizy
  598. France
  599. Tele:    +33 139 46 1616
  600. Fax:    +33 130 70 6666
  601. %Order:Benelux%
  602. A Line Systems
  603. Energiestraat 33
  604. 1411 AR Naarden
  605. Netherlands
  606. Tele:    +31 2159 56555
  607. Fax:    +31 2159 43245
  608. %Order:Germany, Austria, Switzerland%
  609. ESM Software
  610. Schlosserstr. 4
  611. 7440 Nuertingen
  612. Germany
  613. Tele:    +49 7022 34077
  614. Fax:    +49 7022 35590
  615. %Order:Denmark%
  616. Ravenholm Computing
  617. Maglebjergvej 5 B
  618. 2800 Lyngby
  619. Denmark
  620. Tele:    +45 42 88 72 49
  621. Fax:    +45 42 88 73 23
  622. %Order:Finland%
  623. H & P Software Engineering Centre
  624. Piispanportii 5
  625. 02240 Espoo
  626. Finland
  627. +358 0 804 05350
  628. +358 0 804 05222
  629. %Order:Rest of Europe%
  630. Liant Software GmbH
  631. Alt-Moabit 91 B
  632. W-1000 Berlin 21
  633. Germany
  634. +49 (0) 30-391-5045
  635. +49 (0) 30-393-4398
  636.  
  637. Liant Software Limited
  638. 2 Caxton Street
  639. London SW1H 0QE
  640. United Kingdom
  641. Tele:    +44 (0)71-799-2434
  642. Fax:    +44 (0)71-799-2552
  643. %Order:Hong Kong%
  644. MacTronic
  645. Unit 2 6/F., Fook Hong Industrial Bldg.
  646. 19 Sheung Yuet Road
  647. Kowloon Bay, Kowloon
  648. Hong Kong
  649. Tele:    852-7582782
  650. Fax:    852-7988831
  651. %Order:Japan%
  652. Nippon Liant Ltd.
  653. 31-8 Takasecho
  654. Funabashi City,
  655. Chiba 273 Japan
  656. Tele:    81-(0)47-437-9816
  657. Fax:    81 (0)47-437-9818
  658. %Order:Korea%
  659. Daou Technology Inc.
  660. 6Fl, Daehenng Bldg 6 64823
  661. Yuksam Dong, Gangnam-Gu
  662. Seoul Korea
  663. Tele:    822-556-1251
  664. Fax:    822-555-0141
  665. %Order:Taiwan%
  666. Acer TWP Corporation
  667. #19-1, Lane 231
  668. Fu Hsin North Road
  669. Taipei, Taiwan R.O.C.
  670. Tele:    886-2-713-6959
  671. Fax:    886-2-715-1950
  672. %Order:China%
  673. E Star
  674. 14, Alley 1, Lane 69, Sec. 5
  675. Ming-Sheng East Road
  676. Taipei, Taiwan, R.O.C.
  677. Tele:    886-2-763-9820
  678. Fax:    886-2-765-8720
  679. %Order:Argentina%
  680. A-Data
  681. Corrientes 821, P.6
  682. (1043) Bueno Aires,
  683. Argentina
  684. Tele:    541-394-5195
  685. Fax:    541-322-5240
  686. %Order:Brazil%
  687. A-Data
  688. Avenida Brigadeiro Faria Lima, 613
  689. Suite #84, CEP: 1451
  690. JD Paulistano
  691. Sao Paulo, S.P. Brazil
  692. Tele:    5511-820-4100
  693. Fax:    5511-820-4100
  694.  
  695. MIPS
  696. Av. Rio Branco 131/1701
  697. Rio de Janiero -20040- Brazil
  698. Tele:    5521-507-1839
  699. Fax:    5521-507-1468
  700. %Order:Chile%
  701. Terabyte Software
  702. La Concepcion 80
  703. Santiago, Chile
  704. Tele:    562-235-5310
  705. Fax:    562-235-9699
  706. %Order:Mexico%
  707. Multisistemas/MMC
  708. Shakespear No. 15 ler piso
  709. Mexico City, Mexico 11590
  710. Tele:    525-255-0011
  711. Fax:    525-203-2081
  712. %Order:Venezuela%
  713. LRM Software, Inc.
  714. Edf. Anauco, Nivel S1
  715. Local 1CS1-11, Parque Central
  716. Caracas 1010, Venezuela
  717. Tele:    582-573-4534
  718. Fax:    582-576-3062
  719. %Order:Uruguay%
  720. Pro-Info
  721. Jose Enrique Rodo 1955
  722. C.P. 11200
  723. Montevideo, Uruguay
  724. Tele:    598-241-9985
  725. Fax:    598-242-0673
  726. %Order:Australia%
  727. Microway Software
  728. Unit 1/16 Tarnard Drive
  729. Braeside, Victoria 3195
  730. Australia
  731. Tele:    613-580-1333
  732. Fax:    613-580-8995
  733.  
  734. Noble Systems
  735. 69 Palace Street
  736. Petersham, NSW 2049
  737. Australia
  738. Tele:    612-564-1200
  739. Fax:    612-564-1465
  740.  
  741. Stiearc Systems Pty. Ltd.
  742. Unit 7, 43-47 Trafalgar Street
  743. Annandale NSW 2038 Australia
  744. Tele:    612-550-1006
  745. Fax:    612-550-1053
  746. %Order:New Zealand%
  747. Napier Computer Systems
  748. 390 Montreal Street
  749. Christchurch, New Zealand
  750. Tele:    643-3-771-861
  751. Fax:    643-3-771-864
  752. %Order:Indonesia%
  753. Pt. Citrathirza Astarijaya
  754. Jl. Ungaran No. 9
  755. Jakarta 12850 Indonesia
  756. Tele:    +21 830 1783
  757. Fax:    +21 829 0789
  758. %Order:Other International%
  759. International Sales Manager
  760. Liant Software Corporation
  761. 8911 Capital of Texas Highway North
  762. Austin, TX 78759
  763. Tele:    (512) 343-1010
  764. Fax:    (512) 343-9487
  765. %Platform:About%
  766. How the List of Supported Platforms View Works:
  767.  
  768. The Platform List window consists of the class PlatformView.  PlatformView is an MDI (Multiple Document Interface) window derived from the VMdiView class.  The constructor for PlatformView creates two child windows: a VExclusiveGroup containing a number of VRadioButtons and a VEditBox displaying information about the selected feature.  The radio buttons correspond to the various platforms supported by C++/Views.
  769.  
  770. The member function, PlatformView:radioChanged(), serves as a "callback" function for the VExclusiveGroup.  It is called whenever the user selects a new radio button and updates the text displayed in the VEditBox.
  771.  
  772. All the text displayed in the FeatureView comes from a separate message file, cvdemo.txt.  The text is retrieved using a global Messenger object.
  773. %Platform:Motif%
  774. C++/Views for Motif supports OSF/Motif version 1.1.2 or above.
  775. We support a number of platforms, such as SCO and SUN, and support a number of C++ compilers, including our own Liant C++.  Please call for more details.
  776. %Platform:Others%
  777. We are working on versions of C++/Views for other platforms.  If you are interested in a particular platform and it not listed here, give us a call.
  778. %Platform:PM%
  779. C++/Views for OS/2 supports Presentation Manager 1.3 and 2.0 for the Zortech C++ 3.0 compiler.
  780. We are currently working on an OS/2 32-bit version for the Zortech C++ and Borland C++ compilers.
  781. %Platform:Windows%
  782. C++/Views for Windows supports Microsoft Windows 3.0 and 3.1 for the Borland C++ 3.0 and 3.1, Microsoft C++ 7.0, and Zortech C++ 3.0 compilers.
  783. We are currently working on a 32-bit version for Windows NT.
  784. %Sketch:About%
  785. How the Sketch Pad Works:
  786.  
  787. The Sketch Pad is a simple drawing program intended to show you how to use C++/Views to perform basic GUI operations.
  788.  
  789. The Sketch Pad window consists of the class SketchView.  SketchView is an MDI (Multiple Document Interface) window derived from the VMdiView class.  The constructor for SketchView creates a child window using the ColorControl class (also used by the Sample Dialog).  The constructor also creates a VPort and VPen object for graphical output, and a VPointArray object to store the points which comprise the "sketch."  These object are destroyed by the SketchView destructor.
  790.  
  791. SketchView handles GUI events by overriding a number of virtual functions:  paint(), is called in response to a "paint" request from the GUI system and refreshes the current image; mouseDn() is called whenever a mouse button is pressed in the SketchView; mouseDn() is called whenever a mouse button is moved in the SketchView; and, mouseUp() is called whenever a mouse button is released in the SketchView.  The mouse functions draw lines in the SketchView window using the VPort object and update the "shadow" image contained in the VPointArray.  The shadow image is used by the paint() member function.  This occurs whenever the window needs to be refreshed, such as when you cover it with another window and then remove that window.
  792.  
  793. The member function, SketchView:newColor(), serves as a "callback" function for the ColorControl.  It is called whenever the user selects a new color.
  794. %Startup:Text%
  795. Welcome to the C++/Views Demo Program!
  796.  
  797. This program was created using the C++/Views class library.  It is intended to give you an overview of C++/Views' features and show you how easy it is to create applications with C++/Views.
  798.  
  799. The Demo includes the following sections:
  800.  
  801. Classes:  A window shows the many classes that comprise the C++/Views class hierarchy in graphical form.  Using the mouse, you can click on any class and get a short description.
  802.  
  803. Features:  A window displays a list of important C++/Views features.  You can select any feature and get a more in-depth description.
  804.  
  805. Platforms:  A window displays a list of platforms supported by C++/Views.  By choosing from the list, you can find out more about C++/Views for that platform.
  806.  
  807. Example Dialog:  This displays a sample dialog box created using C++/Views.  The dialog contains both standard and customized dialog controls.
  808.  
  809. Example Sketch Pad:  This displays a simple sketch pad created using C++/Views.
  810.  
  811. About the Current Window:  This feature gives you a description of how a particular part of the Demo program works and lets you view the source code for it.
  812.  
  813. Enjoy your tour of the C++/Views demo.  If you have any questions, please give us a call!
  814. %ZZZ:lastmsg%
  815.  
  816.